// 1. 引入异步对象
import request from '@/utils/request'
// 引入TS接口约束
import type { AttrInfoModel,AttrValueInfoModel} from './model/attrModel'
import type { CategoryIdsModel } from './model/categoryModel'
// 2. 使用枚举存储接口地址
enum Api {
  // 获取属性列表
  getAttrListApi = '/admin/product/attrInfoList',
  // 删除属性
  deleteAttrApi = '/admin/product/deleteAttr',
  // 添加或更新属性
  addOrUpdateAttrApi = '/admin/product/saveAttrInfo',
}
// 3. 书写接口函数

/**
 * 定义了一个根据三级导航Id获取属性列表的接口函数
 * @param attrId 
 * @returns 
 */
export const reqGetAttrListData = ({category1Id,category2Id,category3Id}:CategoryIdsModel) => {
  return request.get<any,AttrValueInfoModel[]>(`${Api.getAttrListApi}/${category1Id}/${category2Id}/${category3Id}`)
}

/**
 * 定义了一个删除属性的接口函数
 * @param attrId 
 * @returns 
 */
 export const reqDeleteOneAttr = (attrId:number) => {
  return request.delete(Api.deleteAttrApi + `/${attrId}`)
}

/**
 * 封装了一个添加或更新属性的接口函数
 * @param attrInfo 
 * @returns 
 */
export const reqAddOrUpdateAttrInfo = (attrInfo:AttrInfoModel) => {
  return request.post<any,null>(Api.addOrUpdateAttrApi,attrInfo)
}